/**
 * @description 验证中间件
 * @author 宫彦胜
 */

const { ErrorModel } = require('../model/ResModel')
const { 
  jsonSchemaFileInfo, // 数据校验失败
} = require('../model/ErrorInfo')

/**
 * 
 * @param {object} validateFn 验证函数 
 */
function genValidator(validateFn){

  async function validator(ctx,next){
    const data = ctx.request.body
    const error = validateFn(data)
    if(error){
      ctx.body = new ErrorModel(jsonSchemaFileInfo)
      return
    }
    // 没有错误就继续调用了
    await next()
  }
  return validator
}

module.exports = genValidator